package cxydmmszl.chapter05.t095;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/**
 * <li style="color: red;">Prob</li>
 * 找到指定的新类型字符串
 * <li style="color: green;">Desc</li>
 * 新类型字符的定义如下：<br/>
 * &emsp;&emsp;1. 新类型字符是长度为 1 或者 2 的字符串。<br/>
 * &emsp;&emsp;2. 表现形式可以仅是小写字母，例如，"e"; 也可以是大写字母+小写字母，例如，"Ab";
 * 还可以是大写字母+大写字母，例如，"DC"。<br/><br/>
 * 现在给定一个字符串 str , str 一定是若干新类型字符 正确组合的结果。
 * 比如"eaCCBi"，由新类型字符"e"、"a”、"CC"和"Bi"拼成。
 * 再给定一个整数 k ，代表 str 中的位置。请返回第 k 个位置的新类型字符。
 * <li style="color: green;">Input</li>
 * 输入包含两行，第一行两个整数n，k(1≤n≤10^5 ,0≤k≤n−1)<br/>
 * n 代表字符串 str 的长度,第二行包含一个字符串，代表字符串 str。
 * <li style="color: green;">Output</li>
 * 输出包含一个被 k 位置指定的新型字符。
 * <li style="color: blue;">Link</li> CD132
 *
 * @author habitplus
 * @since 2021-10-09 13:53
 */
public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] ss = br.readLine().split(" ");
        int n = Integer.parseInt(ss[0]);
        int k = Integer.parseInt(ss[1]);
        String str = br.readLine();

        str = handle(str, k);
        System.out.println(str);
    }

    private static String handle(String str, int k) {
        if (str == null || str.length() == 0 || k < 0 || k >= str.length()) {
            return "";
        }

        char[] chs = str.toCharArray();
        int upperNum = 0;
        for (int i = k-1; i >= 0; i--) {
            if ('A' > chs[i] || chs[i] > 'Z') {
                break;
            }
            upperNum++;
        }

        StringBuilder sb = new StringBuilder();
        if ((upperNum & 1) == 1) {
            // 连续的大写字母为奇数，第 k 个字符与前一个大写字母组成新类型字符串
            sb.append(chs[k-1]).append(chs[k]);
        } else if (chs[k] >= 'A' && chs[k] <= 'Z') {
            // 第 k 个字母为大写字母，必须与后一个字母组成新字符串
            sb.append(chs[k]).append(chs[k+1]);
        } else {
            // 第 k 个字母是小写字母，新类型字符就是 chs[k]
            sb.append(chs[k]);
        }

        return sb.toString();
    }
}
